.TH io_queue_init 2 2002-09-03 "Linux 2.4" "Linux AIO"
.SH NAME
io_queue_init \- Initialize asynchronous io state machine

.SH SYNOPSIS
.nf
.B #include <errno.h>
.br
.sp
.B #include <libaio.h>
.br
.sp
.BI "int io_queue_init(int maxevents, io_context_t  *ctx );"
.sp
.fi
.SH DESCRIPTION
.B io_queue_init
Attempts to create an aio context capable of receiving at least 
.IR maxevents
events. 
.IR ctx
must point to an aio context that already exists and must be initialized
to 
.IR 0
before the call.
If the operation is successful, *cxtp is filled with the resulting handle.
.SH "RETURN VALUES"
On success,
.B io_queue_init
returns 0.  Otherwise, -error is return, where
error is one of the Exxx values defined in the Errors section.
.SH ERRORS
.TP
.B EFAULT
.I iocbs
referenced data outside of the program's accessible address space.
.TP
.B EINVAL
.I maxevents
is <= 0 or 
.IR ctx
is an invalid memory locattion.
.TP
.B ENOSYS 
Not implemented
.TP
.B EAGAIN
.IR "maxevents > max_aio_reqs"
where max_aio_reqs is a tunable value.
.SH "SEE ALSO"
.BR io(3),
.BR io_cancel(3),
.BR io_fsync(3),
.BR io_getevents(3),
.BR io_prep_fsync(3),
.BR io_prep_pread(3),
.BR io_prep_pwrite(3),
.BR io_queue_release(3),
.BR io_queue_run(3),
.BR io_queue_wait(3),
.BR io_set_callback(3),
.BR io_submit(3),
.BR errno(3)
